package Demo27;
/**
 * 寻找数组的中心下标
 * https://leetcode.cn/problems/find-pivot-index/
 * 这里主要是需要两个数组,一个求前缀和,一个求后缀和,当前缀和 与 后缀和相等的时候,就是我们需要的值
 */

class Solution {
    public int pivotIndex(int[] nums) {
        long[] dp = new long[nums.length];
        int len = nums.length - 1;
        dp[0] = nums[0];
        for(int i = 1; i < nums.length;i++) {
            dp[i] = dp[i-1] + nums[i];
        }

        for(int i = 0;i < nums.length;i++) {
            if(i == 0) {
                if(dp[len] - dp[0] == 0){
                    return 0;
                }
            }else if(dp[i-1] == dp[len] - dp[i]) {
                return i;
            }else if(i == len){
                if(dp[len - 1] == 0) return len - 1;
            }
        }
        return -1;
    }
}
class Dome {
    public static void main(String[] args) {
        Solution solution = new Solution();
        int ret = solution.pivotIndex(new int[] {-1,-1,0,1,1,0});
        System.out.println(ret);
    }
}